Hide minor edits - Show changes to markup
...by correct use of detail and structural brushes'
(:toc:)
Read this excellent description of VIS that explains very nicely what it is: VIS for dummies by TheStorm. This was the tutorial that showed me the light. Can't see any reason to re-write it. Read it, and then read it again. If you don't get it, read it again and think this time. It is well spent time. Hear me now, believe me later.
If you read TheStorm?'s tutorial, you now have an idea of what to do, and why you should do it. Now lets make it simpler to do correctly.
There are lots of stuff in your map that does not affect your VIS compile at all.
These things are:
...so in the next sections we will "get rid" of them by using Radiant filters:
Here is an example taken from the "Vemork Factory" map.
Img 1: MOHRadiant before anything is done
In the window title of MOHRadiant, the active filters are listed. Default is none, so you will probably see - Filters: <None>. Now go to View -> Filter and activate the following filters:
| Filter | What it filters away | Why we don't need to see it |
|---|---|---|
| Entities | Player starts, script objects, func objects, origins, models | Because they don't affect VIS, but they block the view in Radiant |
| Patches | Simple patch mesh brushes | Because they don't affect VIS, but they block the view in Radiant |
| Liquids | All water volumes | Because they don't affect VIS, but they block the view in Radiant |
| Lights | All point light sources ( but not light emitting surfaces ) | Because they don't affect VIS, but they block the view in Radiant |
| Terrain | LOD patches | Because they don't affect VIS, but they block the view in Radiant |
| Vis | All vis_leafgroup brushes | They can also be used for VIS, but you should not use them until you made everything else correct. |
When you look around now you will se a lot less stuff. It may look a bit boring as well, but that is a good thing. We are actually aiming to make your map look terribly boring right now.
Note:
If you have AI or BOTs? or anything else out of the ordinary, you may want to activate some other filters, like AI nodes, but the filters above should be enough for most regular MP mappers.
Img 2: MOHRadiant after activating the filters above
All of the unnecessary ( for the VIS compile ) stuff is not shown now and we can concentrate on detail and structural brushes.
So what are the candidate brushes to make detail? A great example of something to make detail is the stairs. Not only the metal stairs in my example, all stairs. They are made up of a lot of small brushes and they don't block visibility.
Note:
Some more compact staircases may actually block visibility. But they are still way to complex structures to include in your VIS compile... Instead design them with a single structural brush under the stairs ( not necessarily seen by the player ) and make the stair steps detail. This way no holes are produced when making the steps of a staircase detail.
Other good candidates for detailing in my example are: The steal beams, the crane construction, the boxes, all the handrails, the generators and the concrete pillars.
So select all these small, non blocking things and select Make detail from the 2D map grids pop up menu. The brushes will become green in the 2D map grid, signaling that they are now detail brushes.
Note:
I find pressing CTRL+d ( toggle the Filtering of detail bushes ), repeatedly during this process, helpful. This way I get a good view of what I have made detail ( sometimes by mistake ) and what remains structural. A cheap form of X-ray vision (:wink:).
The image below looks really boring, right? Yes: that is our aim. An inside of a building like this should be clean after detailing and filtering out like we have done.
Img 3: MOHRadiant after detailing and activating the detail filter.
The default brush is a structural brush. And in some tutorials I have seen the dangerous recommendation to "make everything detail", this is a bad suggestion. Yes it speeds up the VIS compile, but it does so by destroying it completely. A better suggestion if you want to do a quick compile just to see how it looks, is to simply skip the VIS compile. It will give you crap FPS ( just like making everything detail ), but its a good way to get a quick look at the map while developing.
So, the stuff to leave structural is: walls, floors and celings. Simple eh? Well, it's a very simplified answer that is not always correct. For a bombed house with holes in every wall, it may be better to make it all detail anyway, as it will not block visibility effectively anyway. But in a house with one destroyed wall, all other walls and the roof should probably be structural. In a V2 kind of map, all the walls should be structural. this way only very small parts of the map needs to be drawn at the same time ( this explains the blazing FPS while inside in the V2 map ).
Well, if your compile times are down and your FPS is up: You don't have to do anything. But if not, look over your map again, and then start to look at the next steps that you can do when your basic map design is not enough:
When we set the filters as we did above: it becomes painfully clear that doors don't block VIS ( a structural brush with a door texture will block VIS, but not a func_door or func_rotatingdoor ). But this can be fixed with the help of a nice little thing called an area portal. Think of it as a structural brush that can be turned on and off. And the nice thing is that if you place area portals in doors: they will be controlled automatically by the door. (:biggrin:)
Read the Areaportal tutorial for information on how to use them.
Sometimes you construct spaces that you know how you want VIS to work in, but the compiler does not agree with you. There are ways for you to tell that stoooopid compiler who is the boss ( And in this case its not Springsteen ). By using vis_leafgroup brushes, you can manually tell the compiler what is drawn from where. Don't start your VIS design with vis_leafgroup brushes, they should only be regarded as the last line of defence when all else fails. Take a look at the Vis_Leafgroup "hands on" tutorial for information on how to use them.